Staccato: A Parallel and Concurrent Real-time Compacting Garbage Collector for Multiprocessors
نویسندگان
چکیده
Existing real-time garbage collectors are either unable to scale to large multiprocessors, or unable to meet hard real-time requirements even with specialized hardware support. These limitations are rapidly becoming unacceptable: hardware improvements have brought multi-gigabyte heaps and ubiquitous multi-core parallelism; applications have increasingly stringent real-time requirements; and non-embedded, highly parallel server applications form an increasing percentage of real-time workloads. We present Staccato, an algorithm that supports both hardand soft-real-time garbage collection on stock hardware and both realtime and stock operating systems. The algorithm is incremental, concurrent, and parallel. Defragmentation can be performed on a per-object basis using a lock-free algorithm which requires no atomic mutator operations in the common case. On a real-time operating system it is capable of meeting hard real-time bounds. We have implemented Staccato in IBM’s J9 virtual machine and present an evaluation on IBM’s real-time variant of Linux. Staccato is able to achieve maximum pause times of 753μs and an MMU of 85% over a 5ms time window, out-performing both IBM’s Metronome-based product and Azul’s soft real-time, hardwareassisted collector.
منابع مشابه
Scalable Real-time Parallel Garbage Collection for Symmetric Multiprocessors
model for garbage collection. Abstract collector algorithms that are parallel, real-time, and spacesafe.collector algorithms that are parallel, real-time, and spacesafe. Proofs of bounded time and space in the abstract models. Implementing lock-free load-balancing. Proper treatment of global variables, stacks, and generations in the presence of concurrency and real-time bounds. The rst implemen...
متن کاملA Concurrent Copying Garbage Collector for Languages that Distinguish ( Im ) mutable
This paper describes the design and implementation of a concurrent compacting garbage collector for languages that distinguish mutable data from immutable data (e.g., ML) as well as for languages that manipulate only immutable data (e.g., pure functional languages such as Haskell). The collector runs on shared-memory parallel computers and requires minimal mutator/collector synchronization. No ...
متن کاملParMarkSplit: A Parallel Mark-Split Garbage Collector Based on a Lock-Free Skip-List
This brief announcement provides a high level overview of a parallel mark-split garbage collector. Our parallel design introduces and makes use of an efficient concurrency control mechanism based on a lock-free skip-list design for handling the list of free memory intervals. We have implemented the parallel mark-split garbage collector in OpenJDK HotSpot as a parallel and concurrent garbage col...
متن کاملBrief Announcement: ParMarkSplit: A Parallel Mark-Split Garbage Collector Based on a Lock-Free Skip-List
This brief announcement provides a high level overview of a parallel mark-split garbage collector. Our parallel design introduces and makes use of an efficient concurrency control mechanism based on a lock-free skip-list design for handling the list of free memory intervals. We have implemented the parallel mark-split garbage collector in OpenJDK HotSpot as a parallel and concurrent garbage col...
متن کاملParallelization of Garbage Collection in a Ccp System, Penny
An important property of logic, object-oriented, functional, and other high-level programming languages is their automatic management of dynamically allocated storage. These languages often take the burden of memory management away from the programmer. The language support system provides the programmer with a virtually unlimited amount of storage by running a garbage collector to reclaim stora...
متن کامل